Passed
Push — master ( 0feaa2...c02782 )
by Dmytro
02:35
created

utils.js ➔ resolve   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
1
import path from 'path';
2
import { assert } from 'chai';
3
import { entry } from './constants';
4
5
export function load(relPath, clearCache) {
6
    const absPath = path.resolve(entry, relPath);
7
8
    if (clearCache) delete require.cache[require.resolve(absPath)];
9
    // eslint-disable-next-line security/detect-non-literal-require
10
    const result =  require(absPath);
11
12
    if (clearCache) delete require.cache[require.resolve(absPath)];
13
14
    return result;
15
}
16
17
export function resolve(relPath) {
18
    return require.resolve(path.join(entry, relPath));
19
}
20
21
export const PERMISSIBLE_FAULT = 0.1;
22
23
export function getReportItem(report, label) {
24
    return report.find(r => r.label === label);
25
}
26
27
28
export function checkReportItem(report, label, metric, value) {
29
    const message = `label=${label}, metric=${metric}, value=${value}`;
30
    const item = getReportItem(report, label);
31
32
    assert.exists(item, message);
33
    const metricValue = item[metric];
34
35
    assert.isAtLeast(metricValue, value * (1 - PERMISSIBLE_FAULT), message);
36
    assert.isAtMost(metricValue, value * (1 + PERMISSIBLE_FAULT), message);
37
}
38